fn main() {
    let mut x = 5;
    println!("The value of x is {}", x);
    x = 6;
    println!("The value of x is {}", x);

    const THREE_HOURS_IN_SECOND: u32 = 60 * 60 * 3;
    println!("The const is {}", THREE_HOURS_IN_SECOND);

    let space = "AAAA";
    println!("The value of space is {}", space);

    let space = space.len(); // new variable here
    println!("The value of space is {}", space);

    let _guess: u32 = "42".parse().expect("Not a number");

    // int
    let mut zhengshu = 98_222;
    println!("The value of zhengshu is {}", zhengshu);

    zhengshu = 0xac;
    println!("The value of zhengshu is {}", zhengshu);

    zhengshu = 0o324_2232;
    println!("The value of zhengshu is {}", zhengshu);

    zhengshu = 0b1101_0010;
    println!("The value of zhengshu is {}", zhengshu);

    let zs_u8: u8 = b'A';
    println!("The value of zhengshu is {}", zs_u8);

    // float
    let float_64 = 2.0;
    println!("The value of float is {}", float_64);
    let float_32: f32 = 3.0;
    println!("The value of float is {}", float_32);

    //
    let sum = 1 + 2;
    println!("The value of sum is {}", sum);

    let diff = 10 - 3;
    println!("The value of diff is {}", diff);

    let multiply = 3 * 4;
    println!("The value of multiply is {}", multiply);

    let quotient = 57.6 / 32.2;
    println!("The value of quotient is {}", quotient);

    let floored = 2 / 3;
    println!("The value of floored is {}", floored);

    let remainder = 43 % 5;
    println!("The value of remainder is {}", remainder);

    // bool
    let t = true;
    println!("The value of t is {}", t);

    let f: bool = false;
    println!("The value of f is {}", f);

    // char ( 4 b ), use '' ; use "" => string
    // Unicode 标量值包含从 U+0000 到 U+D7FF 和 U+E000 到 U+10FFFF 在内的值。
    let c = 'z';
    let z = 'ℤ';
    let heart_eye_cat = '😻';

    println!("The value of char is {}, {}, {}", c, z, heart_eye_cat);

    // compound type : tuple, array
}
